package com.cz.basetool.ui_work.util.system.gps;

import android.content.Context;
import android.location.LocationManager;
import android.provider.Settings;

/**
 * Created by XinYi on 2019/1/15.
 */

public class GpsUtil {
    /**
     * 判断GPS或网络定位是否可用
     * @param context
     * @return true 可用
     */
    public static boolean isOPen(Context context) {
        LocationManager locationManager = (LocationManager) context.getSystemService(Context.LOCATION_SERVICE);
        // 通过GPS卫星定位，定位级别可以精确到街（通过24颗卫星定位，在室外和空旷的地方定位准确、速度快）
        boolean gps = locationManager.isProviderEnabled(LocationManager.GPS_PROVIDER);
        // 通过WLAN或移动网络(3G/2G)确定的位置（也称作AGPS，辅助GPS定位。主要用于在室内或遮盖物（建筑群或茂密的深林等）密集的地方定位）
        boolean network = locationManager.isProviderEnabled(LocationManager.NETWORK_PROVIDER);
        if (gps || network) {
            return true;
        }
        return false;
    }

    /** 获取Gps开启或关闭状态 */
    public static int getGpsStatus(Context context) {
        int i = Settings.Secure.getInt(context.getContentResolver(), LocationManager.GPS_PROVIDER, Settings.Secure.LOCATION_MODE_OFF);
        return i;
    }

    /** 打开或关闭Gps */
    public static void setGpsStatus(Context context, boolean enabled) {
        try {
            Settings.Secure.putInt(context.getContentResolver(), LocationManager.GPS_PROVIDER, Settings.Secure.LOCATION_MODE_HIGH_ACCURACY);
        } catch (Exception e) {
            e.printStackTrace();
        }
    }

}
